/* 
 * File:   ParserMatrizExtendida.h
 * Author: nicolas
 *
 * Created on 28 de septiembre de 2012, 22:57
 */

#ifndef PARSERMATRIZEXTENDIDA_H
#define	PARSERMATRIZEXTENDIDA_H

#include <list>
#include <iterator>
#include <fstream>
#include <string>
#include <iostream>

#define PALABRA_COMPLETA 1   //si tengo un caracter de fin(".,;+?¡¿, etc)
#define PALABRA_INCOMPLETA 0 //sigo otra letra o un guion(-) o si es una sigla
#define PALABRA_SIN_DESICION 2 //tengo un espacio y antes una palabra mayuscula
#define PALABRA_ESPERAR_GUION 3 //es un guion
#define PALABRA_SIGUE_ANTERIOR 4 //sigue un nombre propio

#define CANT_FLAGS 5

class ParserMatrizExtendida {
public:
    ParserMatrizExtendida();
    ParserMatrizExtendida(const ParserMatrizExtendida& orig);
    bool isDelimitador(char letra);
    bool finDePalabra(const char caracter_corte);
    int aplicarReglas(const char letra);
    void flagsReset();
    std::string * ingresarNuevaLetra(const char letra);
    std::string * ultimaPalabra();
    void limpiarParserMatriz();
    bool  eliminarSignos(char letra);
    virtual ~ParserMatrizExtendida();
    
private:
    std::string delimitadores;
    int filas_documentos;
    int columnas_terminos;
    //std::list<std::string>  * l_terminos; //no sirve si son muchos terminos
    std::string terminoAdevolver;
    std::string terminoTemporal;
    bool flags[4]; //flags {primera mayus, hay espacio en palabra,}
    int pos;
   
 };

#endif	/* PARSERMATRIZEXTENDIDA_H */